#ifndef DUALRECVRELAYHANDLERBASE_H
#define DUALRECVRELAYHANDLERBASE_H

#include "ITransHandler.h"
#include "Log.h"

class DualRecvRelayHandlerBase abstract:public ITransHandler
{
public:
	DualRecvRelayHandlerBase():ITransHandler(){}

	~DualRecvRelayHandlerBase(){}

	virtual ExecuteResultCode Execute(ClientContext&,OVERLAPPED*);

protected:
	virtual void GetRecvSendInfo(ClientContext &client,SOCKET *recvSock,SOCKET *sendSock,WSABUF **buf,OVERLAPPED **ovl,WSABUF **weakRefBuf) abstract;

	virtual void SetNextHandler(ClientContext&) abstract;

private:
	static log4cplus::Logger log;
};

#endif